As is known, the cells of a memory are programmed by biasing the gate terminal of the cell to be written (through a word line) to a predetermined first potential (for example 8-9 V), biasing the drain terminal to a predetermined second potential (for example 5 V), and biasing the source terminal to ground. Thus, by hot electron injection, electrons are trapped in the floating gate region of the cell, and therefore the threshold voltage of the cell is modified.
By its very nature, the phenomenon of hot electron injection is uncontrolled and cannot be repeated with precision; consequently, programming is carried out by providing a plurality of programming pulses and reading the threshold voltage of the cell after each programming pulse (verifying step), to evaluate whether the required value has been reached, and decide whether to apply further programming pulses.
In case of programming several cells of the array, the cells are programmed serially, i.e., programming of one cell is completed before beginning with programming a subsequent cell. This process therefore requires a considerable amount of time, which is directly proportional to the number of cells to be programmed and to the target threshold value.